﻿using RabbitMQ.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DXApplicationTangche.Utils
{
    class RibbitMq3_33
    {
        public static ConnectionFactory factory = new ConnectionFactory()
        {
            HostName = "192.168.3.33",//主机名，Rabbit会拿这个IP生成一个endpoint，这个很熟悉吧，就是socket绑定的那个终结点。
            Port = 5672,
            //VirtualHost = "rabbitmq",
            UserName = "rabbitmq",//默认用户名,用户可以在服务端自定义创建，有相关命令行
            Password = "rabbitmq",//默认密码
        };


        public static void basicPublish(String message,String queue)
        {
            using (var connection = factory.CreateConnection())//连接服务器，即正在创建终结点。
            {
                //创建一个通道，这个就是Rabbit自己定义的规则了，如果自己写消息队列，这个就可以开脑洞设计了
                //这里Rabbit的玩法就是一个通道channel下包含多个队列Queue
                using (var channel = connection.CreateModel())
                {
                    channel.QueueDeclare(queue, true, false, false, null);//创建一个名称为kibaqueue的消息队列
                    var properties = channel.CreateBasicProperties();
                    properties.DeliveryMode = 1;
                    channel.BasicPublish("",queue, properties, Encoding.UTF8.GetBytes(message)); //生产消息
                }
            }
        }
    }
}
